1
Pengantar PyTorch: Mengapa Tensor Penting
EvoClass-AI002Kuliah 1
00:00

Pengantar PyTorch: Mengapa Tensor Penting

PyTorch adalah kerangka kerja sumber terbuka yang sangat fleksibel dan dinamis, digemari untuk penelitian pembelajaran mendalam dan prototipe cepat. Di intinya, Tensor adalah struktur data yang tak tergantikan. Ini adalah larik multi-dimensi yang dirancang untuk menangani operasi numerik secara efisien yang dibutuhkan oleh model pembelajaran mendalam, mendukung akselerasi GPU secara otomatis.akselerasi GPU automatically.

1. Memahami Struktur Tensor

Setiap input, output, dan parameter model dalam PyTorch dikemas dalam bentuk Tensor. Mereka memiliki fungsi yang sama seperti array NumPy tetapi dioptimalkan untuk pemrosesan pada perangkat keras khusus seperti GPU, membuatnya jauh lebih efisien untuk operasi aljabar linear skala besar yang dibutuhkan oleh jaringan saraf.

Properti utama yang mendefinisikan tensor:

  • Bentuk: Menentukan dimensi data, dinyatakan sebagai tuple (misalnya, $4 \times 32 \times 32$ untuk satu kelompok gambar).
  • Tipe Data: Menentukan tipe numerik dari elemen yang disimpan (misalnya, torch.float32 untuk bobot model, torch.int64 untuk pengindeksan).
  • Perangkat: Menunjukkan lokasi perangkat keras fisik: biasanya 'cpu' atau 'cuda' (GPU NVIDIA).
Grafik Dinamis dan Autograd
PyTorch menggunakan model eksekusi imperatif, artinya grafik komputasi dibangun saat operasi dieksekusi. Hal ini memungkinkan mesin diferensiasi otomatis bawaan, Autograd, untuk melacak setiap operasi pada Tensor, selama properti requires_grad=True diatur, memungkinkan perhitungan gradien yang mudah saat melakukan backpropagation.
fundamentals.py
TERMINALbash — pytorch-env
> Siap. Klik "Jalankan" untuk mengeksekusi.
>
PENGECEK TENSORHidup

Jalankan kode untuk memeriksa tensor aktif
Pertanyaan 1
Perintah mana yang menciptakan tensor $5 \times 5$ yang berisi angka acak mengikuti distribusi seragam antara 0 dan 1?
torch.rand(5, 5)
torch.random(5, 5)
torch.uniform(5, 5)
torch.randn(5, 5)
Pertanyaan 2
Jika tensor $A$ berada di CPU, dan tensor $B$ berada di perangkat CUDA, apa yang terjadi jika Anda mencoba menghitung $A + B$?
Terjadi kesalahan karena operasi mengharuskan tensor berada di perangkat yang sama.
PyTorch secara otomatis memindahkan $A$ ke perangkat CUDA dan melanjutkan.
Operasi dilakukan di CPU, dan hasilnya dikembalikan ke CPU.
Pertanyaan 3
Apa tipe data (dtype) yang paling umum digunakan untuk bobot model dan perhitungan antara dalam Pembelajaran Mendalam?
torch.float32 (floating point presisi tunggal)
torch.int64 (bilangan bulat panjang)
torch.bool
torch.float64 (floating point presisi ganda)
Tantangan: Manipulasi Tensor dan Bentuk
Siapkan tensor untuk operasi matriks tertentu.
Anda memiliki vektor fitur $F$ dengan bentuk $(10,)$. Anda perlu mengalikannya dengan matriks bobot $W$ dengan bentuk $(10, 5)$. Agar perkalian matriks (MatMul) berhasil, $F$ harus berdimensi 2.
Langkah 1
Bentuk $F$ seharusnya seperti apa sebelum perkalian dengan $W$?
Solusi:
Dimensi dalam harus sesuai, sehingga $F$ harus menjadi $(1, 10)$. Kemudian $(1, 10) @ (10, 5) \rightarrow (1, 5)$.
Kode: F_new = F.unsqueeze(0) atau F_new = F.view(1, -1)
Langkah 2
Lakukan perkalian matriks antara $F_{new}$ dan $W$ (bentuk $(10, 5)$).
Solusi:
Operasi ini langsung berupa MatMul.
Kode: output = F_new @ W atau output = torch.matmul(F_new, W)
Langkah 3
Metode mana yang secara eksplisit mengembalikan tensor dengan dimensi tertentu, memungkinkan Anda mengembalikan tensor menjadi bentuk $(50,)$? (Anggap $F$ awalnya $(5, 10)$ dan sekarang telah dijadikan datar.)
Solusi:
Gunakan metode view atau reshapemetode. Cara tercepat untuk membuat rata adalah menggunakan -1untuk satu dimensi.
Kode: F_flat = F.view(-1) atau F_flat = F.reshape(50)